<?php
	include 'connectDB.php';
	class register
	{
		private function validEmail($email)
{
   $isValid = true;
   $atIndex = strrpos($email, "@");
   if (is_bool($atIndex) && !$atIndex)
   {
      $isValid = false;
   }
   else
   {
      $domain = substr($email, $atIndex+1);
      $local = substr($email, 0, $atIndex);
      $localLen = strlen($local);
      $domainLen = strlen($domain);
      if ($localLen < 1 || $localLen > 64)
      {
         // local part length exceeded
         $isValid = false;
      }
      else if ($domainLen < 1 || $domainLen > 255)
      {
         // domain part length exceeded
         $isValid = false;
      }
      else if ($local[0] == '.' || $local[$localLen-1] == '.')
      {
         // local part starts or ends with '.'
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $local))
      {
         // local part has two consecutive dots
         $isValid = false;
      }
      else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
      {
         // character not valid in domain part
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $domain))
      {
         // domain part has two consecutive dots
         $isValid = false;
      }
      else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local)))
      {
         // character not valid in local part unless 
         // local part is quoted
         if (!preg_match('/^"(\\\\"|[^"])+"$/',
             str_replace("\\\\","",$local)))
         {
            $isValid = false;
         }
      }
      if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
      {
         // domain not found in DNS
         $isValid = false;
      }
   }
   return $isValid;
}
		private function secureVars($var)
		{
			$var=htmlspecialchars($var);
			$var=mysql_real_escape_string($var);
			return $var;
		}
		public function reg($password1,$password2,$email,$firstName,$lastName,$country,$address,$tel,$city)
		{
			$password1=$this->secureVars($password1);
			$password2=$this->secureVars($password2);
			$email=$this->secureVars($email);
			$firstName=$this->secureVars($firstName);
			$lastName=$this->secureVars($lastName);
			$country=$this->secureVars($country);
			$address=$this->secureVars($address);
			$tel=$this->secureVars($tel);
			$city=$this->secureVars($city);
			
			if(strlen($password1)<4)
			    return "Too short password !";
			if($password1!=$password2)
				return "The passwords do not match !";
			
			$password1=md5($password1)."qlqlql";
			$password1=md5($password1);
				
			if(!$this->validEmail($email))
				return "Invalid email address !";
			
			if((preg_match('[^A-Za-z]', $firstName)) || (preg_match('[^A-Za-z]',$lastName)))
				return "Invalid name !";
			
			$sql=mysql_query("INSERT INTO users (email, password, firstName, lastName, country, address,phone,city) VALUES ('".$email."', '".$password1."', '".$firstName."', '".$lastName."', '".$country."', '".$address."', '".$tel."', '".$city."')") or die (mysql_error()) ;
			if(!$sql)
				return "This email is already taken!";
			else return "Successful registration";
		}
	}
	
	$object=new register();
	echo $object->reg($_POST['password1'],$_POST['password2'],$_POST['email'],$_POST['firstName'],$_POST['lastName'],$_POST['country'],$_POST['address'],$_POST['tel'],$_POST['city']);
	
?>